home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Codigo / Recortar, arrastrar y colocar / ImageClip / ImageClip.cs next >
Encoding:
Text File  |  2002-05-30  |  3.1 KB  |  98 lines

  1. //----------------------------------------
  2. // ImageClip.cs ⌐ 2001 by Charles Petzold
  3. //----------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Drawing.Imaging;
  7. using System.Windows.Forms;
  8.  
  9. class ImageClip: ImagePrint
  10. {
  11.      MenuItem miCut, miCopy, miPaste, miDel;
  12.      [STAThread]
  13.      public new static void Main()
  14.      {
  15.           Application.Run(new ImageClip());
  16.      }
  17.      public ImageClip()
  18.      {
  19.           Text = strProgName = "Imßgenes en el portapapeles";
  20.  
  21.                // Men· Edici≤n
  22.  
  23.           MenuItem mi = new MenuItem("&Edici≤n");
  24.           mi.Popup += new EventHandler(MenuEditOnPopup);
  25.           Menu.MenuItems.Add(mi);
  26.           int index = Menu.MenuItems.Count - 1;
  27.  
  28.                // Elemento de men· Edici≤n Cortar
  29.  
  30.           miCut = new MenuItem("Cor&tar");
  31.           miCut.Click += new EventHandler(MenuEditCutOnClick);
  32.           miCut.Shortcut = Shortcut.CtrlX;
  33.           Menu.MenuItems[index].MenuItems.Add(miCut);
  34.  
  35.                // Elemento de men· Edici≤n Copiar
  36.  
  37.           miCopy = new MenuItem("&Copiar");
  38.           miCopy.Click += new EventHandler(MenuEditCopyOnClick);
  39.           miCopy.Shortcut = Shortcut.CtrlC;
  40.           Menu.MenuItems[index].MenuItems.Add(miCopy);
  41.  
  42.                // Elemento de men· Edici≤n Pegar
  43.  
  44.           miPaste = new MenuItem("&Pegar");
  45.           miPaste.Click += new EventHandler(MenuEditPasteOnClick);
  46.           miPaste.Shortcut = Shortcut.CtrlV;
  47.           Menu.MenuItems[index].MenuItems.Add(miPaste);
  48.  
  49.                // Elemento de men· Edici≤n Borrar
  50.  
  51.           miDel = new MenuItem("&Borrar");
  52.           miDel.Click += new EventHandler(MenuEditDelOnClick);
  53.           miDel.Shortcut = Shortcut.Del;
  54.           Menu.MenuItems[index].MenuItems.Add(miDel);
  55.      }
  56.      void MenuEditOnPopup(object obj, EventArgs ea)
  57.      {
  58.           miCut.Enabled = 
  59.           miCopy.Enabled = 
  60.           miDel.Enabled = image != null;
  61.  
  62.           IDataObject data = Clipboard.GetDataObject();
  63.  
  64.           miPaste.Enabled = data.GetDataPresent(typeof(Bitmap)) ||
  65.                             data.GetDataPresent(typeof(Metafile));
  66.      }
  67.      void MenuEditCutOnClick(object obj, EventArgs ea)
  68.      {
  69.           MenuEditCopyOnClick(obj, ea);
  70.           MenuEditDelOnClick(obj, ea);
  71.      }
  72.      void MenuEditCopyOnClick(object obj, EventArgs ea)
  73.      {
  74.           Clipboard.SetDataObject(image, true);
  75.      }
  76.      void MenuEditPasteOnClick(object obj, EventArgs ea)
  77.      {
  78.           IDataObject data = Clipboard.GetDataObject();
  79.  
  80.           if (data.GetDataPresent(typeof(Metafile)))
  81.                image = (Image) data.GetData(typeof(Metafile));
  82.  
  83.           else if (data.GetDataPresent(typeof(Bitmap)))
  84.                image = (Image) data.GetData(typeof(Bitmap));
  85.  
  86.           strFileName = "Portapapeles";
  87.           Text = strProgName + " - " + strFileName;
  88.           Invalidate();
  89.      }
  90.      void MenuEditDelOnClick(object obj, EventArgs ea)
  91.      {
  92.           image = null;
  93.           strFileName = null;
  94.           Text = strProgName;
  95.           Invalidate();
  96.      }
  97. }
  98.